package com.tql.hualala.request;

/**
 实例数据：
 "actionBatchNo": "",
 "actionTime": 20240125112613,
 "allFoodRemark": "",
 "areaName": "外卖",
 "cancelBy": "|",
 "cancelReason": "",
 "cancelTime": 0,
 "categoryDiscountRate": 1,
 "clientType": "0",
 "createTime": 20240125112612,
 "departmentKeyLst": "",
 "departmentKeyOne": "",
 "deviceName": "YST",
 "foodCancelNumber": 0,
 "foodCategoryKey": "dbc7258d-39ba-4c79-94c5-4830620b69c1",
 "foodCategoryName": "灶台外卖类",
 "foodCategorySortIndex": 0,
 "foodCode": "500",
 "foodDiscountRate": 0,
 "foodEstimateCost": 0.00,
 "foodKey": "500",
 "foodLastCancelNumber": 0,
 "foodName": "咸肉野笋丝(份)",
 "foodNumber": 1,
 "foodPayPrice": 18,
 "foodPayPriceReal": 9.82,
 "foodPractice": "",
 "foodPriceAmount": 18,
 "foodProPrice": 28,
 "foodRealAmount": 9.82,
 "foodRealPrice": 9.82,
 "foodRemark": "",
 "foodSendNumber": 0,
 "foodSubType": "",
 "foodSubjectCode": "510148",
 "foodSubjectKey": "510148",
 "foodSubjectName": "灶台外卖类收入",
 "foodTaste": "",
 "foodVipPrice": 28,
 "groupID": 247692,
 "isBatching": 0,
 "isDiscount": 1,
 "isDiscountDefault": 1,
 "isNeedConfirmFoodNumber": 0,
 "isSFDetail": 0,
 "isSetFood": 0,
 "isTempFood": 0,
 "itemKey": "0ELM003000",
 "makeBy": "",
 "makeCallCount": 0,
 "makeEndNumber": 0,
 "makeEndTime": 0,
 "makeEndfoodNumber": 0,
 "makeStartTime": 20240125112612,
 "makeStatus": 3,
 "modifyBy": "|",
 "modifyReason": "",
 "modifyTime": 0,
 "orderBy": "9999|哗啦啦线上",
 "orderKey": "YST2401251126120ELM003",
 "orderStatus": 40,
 "orderSubType": 20,
 "parentFoodFromItemKey": "",
 "printStatus": 2,
 "promotionIDLst": "",
 "readyNumber": 0,
 "reportDate": 20240125,
 "salesCommission": 0,
 "sendBy": "|",
 "sendReason": "",
 "sendTime": 0,
 "serveConfirmBy": "",
 "serveConfirmTime": 0,
 "serverMAC": "18-18-18-18-18-18",
 "setFoodCategoryName": "",
 "setFoodName": "",
 "setFoodRemark": "",
 "shopID": 76591422,
 "shopName": "同庆楼(玫瑰庄园店)",
 "tableName": "ELM",
 "taxRate": 0,
 "transmitNumber": 0,
 "unit": "份",
 "unitAdjuvant": "",
 "unitAdjuvantNumber": 0,
 "unitKey": "5001"
 */

import java.math.BigDecimal;

/**
 * 数据解释：
 * actionBatch否	字符串	操作批次号
 * actionTime	长	记录修改时间（改价、赠菜时间）【yyyyMMddHHmmss，默认值0】
 * 全部食物备注	字符串	单注
 * 区域名称	字符串	区域名称
 * 取消作者	字符串	退菜操作人员empCode|empName
 * 取消原因	字符串	退菜原因
 * 取消时间	长	退菜时间【yyyyMMddHHmmss，默认值0】
 * 类别折扣率	字符串	分类折扣率（当执行分类折扣方案时，此值表示此菜品在分类折扣中的折扣率）
 * clientType	字符串	客户端类型
 * 创建时间	长	记录创建时间（点菜时间、退菜时间）
 * 部门KeyLst	字符串	会员卡状态名称
 * 部门KeyOne	字符串	第一出品部门
 * 设备名称	字符串	点菜设备名称
 * foodCancelNumber	字符串	退菜数量
 * foodCategory键	字符串	分类编号
 * foodCategory名称	字符串	分类名称
 * foodCategorySortIndex	整数	分类排序值
 * 食品代码	字符串	菜品编码
 * foodDiscountRate	字符串	单菜品折扣信息
 * 食物估算成本	字符串	菜品预估成本
 * foodKey	字符串	菜品Key
 * foodLastCancelNumber	字符串	最后一次退菜数量
 * 食物名称	字符串	菜品名称
 * 食物编号	字符串	点菜数量
 * 食物价格金额	字符串	菜品折前总金额（套餐名字的折前金额为0，套餐明细摊后的折前金额=套餐折前总金额*（套餐明细单点金额/套餐明细单点折前金额合计）） ，菜品折前单价需要自己计算=foodPriceAmount/（foodNumber-foodCancelNumber），foodNumber包含了“收费的”，“赠送的”，“退款的”，分母实际上是“收费的”+“赠送的”，所以不用再额外管foodSendNumber
 * foodRealAmount（食物真实数量）	字符串	菜品实收总金额，菜品优惠总金额需要自己计算= foodPriceAmount - foodRealAmount
 * foodReal价格	字符串	菜品实收单价（ 除去均摊后的菜品单价，这是算出来的，会存在四舍五入的情况，约等于 foodRealAmount/（foodNumber-foodSendNumber-foodCancelNumber） ）
 * foodPro价格	字符串	菜品商户中心设置单价
 * foodPay价格	字符串	菜品实收价格，根据折扣科目均摊计算之后的结果
 * foodPayPriceReal（食物支付价格真实）	字符串	菜品成交价，优惠类别按照此价格为计数进行
 * food备注	字符串	点菜要求
 * food味道	字符串	菜品口味.口味选择多个的情况, 以英文逗号分隔.如"中辣,凉"
 * foodPractice（食物实践）	字符串	菜品做法.做法选择多个的情况, 以英文逗号分隔.如"避风塘,加辣"
 * foodSendNumber	字符串	赠菜数量
 * foodSubject代码	字符串	对应收入科目编号
 * foodSubject键	字符串	对应收入科目Key
 * foodSubject名称	字符串	对应收入科目名称
 * foodSubType	字符串	菜品的子类型
 * 食品VipPrice	字符串	菜品会员价
 * groupID	Long	所属集团ID
 * isBatching	Integer	是否配菜，1：配菜
 * isDiscount	Integer	是否参与打折
 * isDiscountDefault	Integer	是否参与打折（默认菜品是否参与打折）
 * isNeedConfirmFoodNumber	Integer	数量待确认 0:无需确认 1：需确认
 * isSetFood	Integer	是否套餐（套餐及套餐明细此标记均为1）
 * isSFDetail	Integer	是否是套餐明细
 * isTempFood	Integer	是否临时菜
 * itemKey	String	明细记录Key
 * makeBy	String	制作人
 * makeCallCount	Integer	制作取餐叫号次数
 * makeEndfoodNumber	String	已制作数量
 * makeEndNumber	String	制作完成时间（上菜时间）
 * makeEndTime	Long	制作完成数量【yyyyMMddHHmmss，默认值0】
 * makeStartTime	Long	制作开始时间【yyyyMMddHHmmss，默认值0】
 * makeStatus	Integer	制作状态 0：等叫 1：即起 2：加急 20：制作中 25：请取餐 29：挂起 3：已上菜（已完成）
 * modifyBy	String	改价操作人员empCode|empName
 * modifyReason	String	改价原因
 * modifyTime	Long	改价时间【yyyyMMddHHmmss，默认值0】
 * orderBy	String	点菜人员
 * orderStatus	Integer	30：作废 40：已结账
 * orderSubType	Integer	订单类型（0：堂食 20：外卖 21：自提）
 * parentFoodFromItemKey	String	配菜、退菜、作法加价对应的点菜记录ItemKey
 * printStatus	Integer	打印状态 0：待打印 1：不打印 2：已打印
 * promotionIDLst	String	菜品使用的营销ID列表
 * readyNumber	String	已配菜数量
 * reportDate	Long	报表统计日期
 * orderKey	String	账单Key，对应账单详情接口的saasOrderKey
 * salesCommission	String	菜品销售提成点值
 * sendBy	String	赠菜操作人员empCode|empName
 * sendReason	String	赠菜原因
 * sendTime	Long	赠菜时间【yyyyMMddHHmmss，默认值0】
 * serveConfirmBy	String	上菜划单人员
 * serveConfirmTime	Long	上菜划单时间【yyyyMMddHHmmss，默认值0】
 * setFoodCategoryName	String	套餐明细所属的套餐分类名字
 * setFoodName	String	套餐名
 * setFoodRemark	String	套餐备注
 * shopID	Long	店铺ID
 * shopName	String	店铺名称
 * tableName	String	桌台名称
 * taxRate	String	菜品税率
 * transmitNumber	String	已传菜数量
 * unit	String	菜品规格
 * unitAdjuvant	String	辅助规格
 * unitAdjuvantNumber	String	辅助规格数量
 * unitKey	String	菜品规格Key 目前对应的是规格ID
 */
public class FoodItem {
    private Long actionTime;
    private String foodCategoryKey;
    private String foodCategoryName;

    private Long reportDate;
    private String clientType;

    private String foodKey;
    private String foodName;
    private String foodCode;
    private BigDecimal foodPriceAmount;//菜品折前总金额

    private BigDecimal foodRealAmount;//菜品实收总金额

private String itemKey;
private BigDecimal foodRealPrice;//菜品实收价格
private BigDecimal foodProPrice;
    private BigDecimal foodPayPrice;//菜品实收价格，根据折扣科目均摊计算之后的价格
    private BigDecimal foodPayPriceReal;//菜品成交价，优惠类别按照此价格为计数进项

    private Integer isSetFood;//1是，0否 是否是套餐

    private Integer isSFDetail;

    private Integer orderStatus;//30作废，40已结账

    private Integer orderSubType;//订单类型 ： 0 堂食，20 外卖，21自提
    private String orderKey;
    private String shopID;
    private String shopName;
    private String unit;
    private String unitAdjuvant;
    private String unitAdjuvantNumber;
    private String unitKey;

    public BigDecimal getFoodProPrice() {
        return foodProPrice;
    }

    public void setFoodProPrice(BigDecimal foodProPrice) {
        this.foodProPrice = foodProPrice;
    }

    public Long getActionTime() {
        return actionTime;
    }

    public void setActionTime(Long actionTime) {
        this.actionTime = actionTime;
    }

    public String getFoodCategoryKey() {
        return foodCategoryKey;
    }

    public void setFoodCategoryKey(String foodCategoryKey) {
        this.foodCategoryKey = foodCategoryKey;
    }

    public String getFoodCategoryName() {
        return foodCategoryName;
    }

    public void setFoodCategoryName(String foodCategoryName) {
        this.foodCategoryName = foodCategoryName;
    }

    public String getClientType() {
        return clientType;
    }

    public void setClientType(String clientType) {
        this.clientType = clientType;
    }

    public String getFoodKey() {
        return foodKey;
    }

    public void setFoodKey(String foodKey) {
        this.foodKey = foodKey;
    }

    public String getFoodName() {
        return foodName;
    }

    public void setFoodName(String foodName) {
        this.foodName = foodName;
    }

    public String getFoodCode() {
        return foodCode;
    }

    public void setFoodCode(String foodCode) {
        this.foodCode = foodCode;
    }

    public BigDecimal getFoodPriceAmount() {
        return foodPriceAmount;
    }

    public void setFoodPriceAmount(BigDecimal foodPriceAmount) {
        this.foodPriceAmount = foodPriceAmount;
    }

    public BigDecimal getFoodRealAmount() {
        return foodRealAmount;
    }

    public void setFoodRealAmount(BigDecimal foodRealAmount) {
        this.foodRealAmount = foodRealAmount;
    }

    public BigDecimal getFoodRealPrice() {
        return foodRealPrice;
    }

    public void setFoodRealPrice(BigDecimal foodRealPrice) {
        this.foodRealPrice = foodRealPrice;
    }

    public BigDecimal getFoodPayPrice() {
        return foodPayPrice;
    }

    public void setFoodPayPrice(BigDecimal foodPayPrice) {
        this.foodPayPrice = foodPayPrice;
    }

    public BigDecimal getFoodPayPriceReal() {
        return foodPayPriceReal;
    }

    public void setFoodPayPriceReal(BigDecimal foodPayPriceReal) {
        this.foodPayPriceReal = foodPayPriceReal;
    }

    public Integer getIsSetFood() {
        return isSetFood;
    }

    public void setIsSetFood(Integer isSetFood) {
        this.isSetFood = isSetFood;
    }

    public Integer getIsSFDetail() {
        return isSFDetail;
    }

    public void setIsSFDetail(Integer isSFDetail) {
        this.isSFDetail = isSFDetail;
    }

    public Integer getOrderStatus() {
        return orderStatus;
    }

    public void setOrderStatus(Integer orderStatus) {
        this.orderStatus = orderStatus;
    }

    public Integer getOrderSubType() {
        return orderSubType;
    }

    public void setOrderSubType(Integer orderSubType) {
        this.orderSubType = orderSubType;
    }

    public String getOrderKey() {
        return orderKey;
    }

    public void setOrderKey(String orderKey) {
        this.orderKey = orderKey;
    }

    public String getShopID() {
        return shopID;
    }

    public void setShopID(String shopID) {
        this.shopID = shopID;
    }

    public String getShopName() {
        return shopName;
    }

    public void setShopName(String shopName) {
        this.shopName = shopName;
    }

    public String getUnit() {
        return unit;
    }

    public void setUnit(String unit) {
        this.unit = unit;
    }

    public String getUnitAdjuvant() {
        return unitAdjuvant;
    }

    public void setUnitAdjuvant(String unitAdjuvant) {
        this.unitAdjuvant = unitAdjuvant;
    }

    public String getUnitAdjuvantNumber() {
        return unitAdjuvantNumber;
    }

    public void setUnitAdjuvantNumber(String unitAdjuvantNumber) {
        this.unitAdjuvantNumber = unitAdjuvantNumber;
    }

    public String getUnitKey() {
        return unitKey;
    }

    public void setUnitKey(String unitKey) {
        this.unitKey = unitKey;
    }

    public String getItemKey() {
        return itemKey;
    }

    public void setItemKey(String itemKey) {
        this.itemKey = itemKey;
    }

    public Long getReportDate() {
        return reportDate;
    }

    public void setReportDate(Long reportDate) {
        this.reportDate = reportDate;
    }

    @Override
    public String toString() {
        return "FoodItem{" +
                "actionTime=" + actionTime +
                ", foodCategoryKey='" + foodCategoryKey + '\'' +
                ", foodCategoryName='" + foodCategoryName + '\'' +
                ", clientType='" + clientType + '\'' +
                ", foodKey='" + foodKey + '\'' +
                ", foodName='" + foodName + '\'' +
                ", foodCode='" + foodCode + '\'' +
                ", foodPriceAmount=" + foodPriceAmount +
                ", foodRealAmount=" + foodRealAmount +
                ", itemKey='" + itemKey + '\'' +
                ", foodRealPrice=" + foodRealPrice +
                ", foodProPrice=" + foodProPrice +
                ", foodPayPrice=" + foodPayPrice +
                ", foodPayPriceReal=" + foodPayPriceReal +
                ", isSetFood=" + isSetFood +
                ", isSFDetail=" + isSFDetail +
                ", orderStatus=" + orderStatus +
                ", orderSubType=" + orderSubType +
                ", orderKey='" + orderKey + '\'' +
                ", shopID='" + shopID + '\'' +
                ", shopName='" + shopName + '\'' +
                ", unit='" + unit + '\'' +
                ", unitAdjuvant='" + unitAdjuvant + '\'' +
                ", unitAdjuvantNumber='" + unitAdjuvantNumber + '\'' +
                ", unitKey='" + unitKey + '\'' +
                '}';
    }
}
